<template>
  <div class="wrapper">
    <!-- header部分 -->
    <header>
      <p>商家信息</p>
    </header>

    <!-- 商家logo部分 -->
    <div class="business-logo" v-if="localBusiness.length > 0">
      <img
        :src="require(`@/assets/${localBusiness[0].businessImg}`)"
        :key="localBusiness[0].businessId"
      />
    </div>

    <!-- 商家信息部分 -->
    <div class="business-info">
      <h1>{{ localBusiness[0].businessName }}</h1>
      <p>
        &#165;{{ localBusiness[0].starPrice }}起送 &#165;
        {{ localBusiness[0].deliveryPrice }} 配送
      </p>
      <p>各种饺子</p>
    </div>

    <!-- 食品列表部分 -->
    <ul class="food">
      <li v-for="(item, index) in hostFood">
        <div class="food-left">
          <img :src="require(`@/assets/${item.foodImg}`)" :key="item.foodId" />
          <div class="food-left-info">
            <h3>{{ item.foodName }}</h3>
            <p>{{ item.foodExplain }}</p>
            <p>&#165;{{ item.foodPrice }}</p>
            <p>剩余数量10-{{ foodSum[index] }}</p>
          </div>
        </div>
        <div class="food-right">
          <div @click="del(index)">
            <i class="fa fa-minus-circle" v-if="foodSum[index] > 0"></i>
          </div>
          <p v-if="foodSum[index] > 0">
            <span> {{ foodSum[index] }}</span>
          </p>
          <div @click="add(index)">
            <i class="fa fa-plus-circle"></i>
          </div>
        </div>
      </li>
    </ul>

    <!-- 购物车部分 -->
    <div class="cart">
      <div class="cart-left" @click="cart()">
        <div class="cart-left-icon">
          <i class="fa fa-shopping-cart"></i>
          <div class="cart-left-icon-quantity">
            {{ sum }}
          </div>
        </div>
        <div class="cart-left-info">
          <p>&#165;{{ cartTotal }}</p>
          <p>另需配送费 {{ localBusiness[0].deliveryPrice }}元</p>
        </div>
      </div>
      <div class="cart-right">
        <!-- 不够起送费 -->
        <div
          class="cart-right-item"
          style="background-color: #535356; cursor: default"
          v-if="flag"
        >
          &#165;{{ localBusiness[0].starPrice }}起送
        </div>
        <!-- 达到起送费 -->
        <div class="cart-right-item" v-else @click="toOrder()">去结算</div>
      </div>
    </div>
  </div>
</template>

<script>
import { forEach } from "core-js/stable/dom-collections"
import axios from "axios"
export default {
  data() {
    return {
      flag: false,
      foodSum: [],
      cartTotal: 0,
      bId: this.$route.params.businessId,
      hostFood: [],
      localBusiness: [],
      sum: 0,
    }
  },
  created() {
    this.getBusinessList()
    this.localFoodList()
  },
  computed: {},
  methods: {
    numChange() {
      // console.log(this.userName, this.password)
      axios.defaults.baseURL = ""
      axios.defaults.withCredentials = false
      axios.defaults.headers.post["Content-Type"] = "application/json"
      axios
        .get("http://localhost:8089/cart", {
          params: {
            list: this.foodSum,
          },
        })
        .then((res) => {
          console.log(res)
        })
      axios.post("http://localhost:8089/cart", {
        dtoList: this.hostFood,
      })
    },
    add(index) {
      this.foodSum[index]++
      this.updateCartTotal()
      this.summary()

      this.$store.state.cart.push(this.hostFood[index])

      console.log(this.$store.state.cart)
      console.log("-------------")
      console.log(this.foodSum)
    },
    del(index) {
      // 如果 foodSum 中对应 index 的数量大于 0，则减少一个
      if (this.foodSum[index] > 0) {
        this.foodSum[index]--

        // 找到 cart 中第一个与 hostFood[index] 相同的元素并删除
        const foodToRemove = this.hostFood[index]
        const indexToRemove = this.$store.state.cart.findIndex(
          (item) => item === foodToRemove
        )
        if (indexToRemove !== -1) {
          this.$store.state.cart.splice(indexToRemove, 1)
        }

        // 更新购物车总金额
        this.updateCartTotal()

        // 更新总结信息（如果有的话）
        this.summary()

        // 打印当前 cart 和 foodSum 用于调试
        console.log(this.$store.state.cart)
        console.log("-----------")
        console.log(this.foodSum)
      }
    },
    summary() {
      this.sum = this.foodSum.reduce((total, sum) => total + sum, 0)
      //
    },
    updateCartTotal() {
      // 根据购物车商品数量更新购物车总金额，并判断是否达到起送费标准
      this.cartTotal = this.foodSum.reduce(
        (total, sum) => total + sum * 15,
        0
      ) /* 这里需要根据实际逻辑计算每个食品的价格 */
      this.flag = this.cartTotal < 15 // 判断是否达到起送费标准
    },
    getBusinessList() {
      // this.$http.get(`BusinessController/findBusinessById?id=${this.bId}`).then(response=>{
      //   this.localBusiness=response.data.result;
      // })
      this.localBusiness = this.$store.state.businessList
      this.localBusiness = this.localBusiness.filter(
        (item) => item.businessId == this.bId
      )
      console.log("--------------")
      console.log("--------------" + this.bId)
      console.log(this.localBusiness)
    },
    localFoodList() {
      this.$http
        .get(`/FoodController/findFoodById?id=${this.bId}`)
        .then((response) => {
          this.hostFood = response.data.result
          this.foodSum = new Array(this.hostFood.length).fill(0) // 初始化foodSum数组

          console.log(this.hostFood)
        })
    },
    toOrder() {
      this.numChange()
      this.$router.push(`/order`)
      // this.$router.push(`/payment/${cartTotal}`)
    },
  },
}
</script>

<style scoped>
/****************** 总容器 ******************/
.wrapper {
  width: 100%;
  height: 100%;
}

/****************** header部分 ******************/
.wrapper header {
  width: 100%;
  height: 12vw;
  background-color: #0097ff;
  color: #fff;
  font-size: 4.8vw;

  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;

  display: flex;
  justify-content: center;
  align-items: center;
}

/****************** 商家logo部分 ******************/
.wrapper .business-logo {
  width: 100%;
  height: 35vw;
  /*使用上外边距避开header部分*/
  margin-top: 12vw;

  display: flex;
  justify-content: center;
  align-items: center;
}

.wrapper .business-logo img {
  width: 40vw;
  height: 30vw;
  border-radius: 5px;
}

/****************** 商家信息部分 ******************/
.wrapper .business-info {
  width: 100%;
  height: 20vw;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.wrapper .business-info h1 {
  font-size: 5vw;
}

.wrapper .business-info p {
  font-size: 3vw;
  color: #666;
  margin-top: 1vw;
}

/****************** 食品列表部分 ******************/
.wrapper .food {
  width: 100%;
  /*使用下外边距避开footer部分*/
  margin-bottom: 14vw;
}

.wrapper .food li {
  width: 100%;
  box-sizing: border-box;
  padding: 2.5vw;
  user-select: none;

  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wrapper .food li .food-left {
  display: flex;
  align-items: center;
}

.wrapper .food li .food-left img {
  width: 22vw;
  height: 22vw;
}

.wrapper .food li .food-left .food-left-info {
  margin-left: 3vw;
}

.wrapper .food li .food-left .food-left-info h3 {
  font-size: 3.8vw;
  color: #555;
}

.wrapper .food li .food-left .food-left-info p {
  font-size: 3vw;
  color: #888;
  margin-top: 2vw;
}

.wrapper .food li .food-right {
  width: 16vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wrapper .food li .food-right .fa-minus-circle {
  font-size: 5.5vw;
  color: #999;
  cursor: pointer;
}

.wrapper .food li .food-right p {
  font-size: 3.6vw;
  color: #333;
}

.wrapper .food li .food-right .fa-plus-circle {
  font-size: 5.5vw;
  color: #0097ef;
  cursor: pointer;
}

/****************** 购物车部分 ******************/
.wrapper .cart {
  width: 100%;
  height: 14vw;

  position: fixed;
  left: 0;
  bottom: 0;

  display: flex;
}

.wrapper .cart .cart-left {
  flex: 2;
  background-color: #505051;
  display: flex;
}

.wrapper .cart .cart-left .cart-left-icon {
  width: 16vw;
  height: 16vw;
  box-sizing: border-box;
  border: solid 1.6vw #444;
  border-radius: 8vw;
  background-color: #3190e8;
  font-size: 7vw;
  color: #fff;

  display: flex;
  justify-content: center;
  align-items: center;

  margin-top: -4vw;
  margin-left: 3vw;

  position: relative;
}

.wrapper .cart .cart-left .cart-left-icon-quantity {
  width: 5vw;
  height: 5vw;
  border-radius: 2.5vw;
  background-color: red;
  color: #fff;
  font-size: 3.6vw;

  display: flex;
  justify-content: center;
  align-items: center;

  position: absolute;
  right: -1.5vw;
  top: -1.5vw;
}

.wrapper .cart .cart-left .cart-left-info p:first-child {
  font-size: 4.5vw;
  color: #fff;
  margin-top: 1vw;
}

.wrapper .cart .cart-left .cart-left-info p:last-child {
  font-size: 2.8vw;
  color: #aaa;
}

.wrapper .cart .cart-right {
  flex: 1;
}

/*达到起送费时的样式*/
.wrapper .cart .cart-right .cart-right-item {
  width: 100%;
  height: 100%;
  background-color: #38ca73;
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  user-select: none;
  cursor: pointer;

  display: flex;
  justify-content: center;
  align-items: center;
}

/*不够起送费时的样式（只有背景色和鼠标样式的区别）*/
/*
	.wrapper .cart .cart-right .cart-right-item{
		width: 100%;
		height: 100%;
		background-color: #535356;
		color: #fff;
		font-size: 4.5vw;
		font-weight: 700;
		user-select: none;
		
		display: flex;
		justify-content: center;
		align-items: center;
	}
	*/
</style>
